home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / unix / volume13 / rolodex / part01 next >
Encoding:
Internet Message Format  |  1988-01-30  |  61.8 KB

  1. Subject:  v13i049:  Screen-oriented rolodex program, Part01/04
  2. Newsgroups: comp.sources.unix
  3. Sender: sources
  4. Approved: rsalz@uunet.UU.NET
  5.  
  6. Submitted-by: Dave Ihnat <ihnp4!homebru!ignatz>
  7. Posting-number: Volume 13, Issue 49
  8. Archive-name: rolodex/part01
  9.  
  10. [  I repacked things.  --r$ ]
  11.  
  12. This is a much-hacked version of the rolodex program posted to the net
  13. some time ago.  Steve Steiner and I have cleaned up a lot of glitches,
  14. ported and verified it on a *lot* of new environments, added the
  15. pretty-print option, etc.  Although there are a number of things I'd like
  16. to still clean up--especially the memory manager!--I'm done with it for
  17. the forseeable future, and so is Steve, so it's probably proper to post it
  18. at this time.  Many thanks to the original author...
  19.  
  20.     Dave Ihnat     -     Steve Steiner
  21.     Analysts International Corporation
  22.     ihnp4!homebru!ignatz ihnp4!aicchi!steiner
  23.  
  24. #! /bin/sh
  25. # This is a shell archive.  Remove anything before this line, then unpack
  26. # it by saving it into a file and typing "sh file".  To overwrite existing
  27. # files, type "sh file -c".  You can also feed this as standard input via
  28. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  29. # will see the following message at the end:
  30. #        "End of archive 1 (of 4)."
  31. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  32. if test -f './Makefile.bsd' -a "${1}" != "-c" ; then 
  33.   echo shar: Will not clobber existing file \"'./Makefile.bsd'\"
  34. else
  35. echo shar: Extracting \"'./Makefile.bsd'\" \(1524 characters\)
  36. sed "s/^X//" >'./Makefile.bsd' <<'END_OF_FILE'
  37. X# Makefile for rolo - UNIX version BSD 4.2
  38. X# Configure for your type of terminal capability database.  
  39. X#  if you have termcap,  set TERMSTUFF= -DTERMCAP,  and LIBS= -ltermcap
  40. X#  if you have terminfo, set TERMSTUFF= -DTERMINFO, and LIBS= -lterminfo
  41. X#  if you don't have either, leave them both blank (only "clear_screen" is used)
  42. XTERMSTUFF= -DTERMCAP
  43. XLIBS= -lcurses -ltermcap
  44. X#
  45. XCC = cc
  46. XRLIB    = /usr/local/lib/rolo
  47. XROLOLIB = \"$(RLIB)\"
  48. XTOOLDIR = ./toolsdir
  49. XCFLAGS = -DBSD -DUNIX -DROLOLIB=$(ROLOLIB) $(TERMSTUFF) -I$(TOOLDIR) -O -s
  50. X#CFLAGS = -DBSD -DUNIX -DROLOLIB=$(ROLOLIB) $(TERMSTUFF) -I$(TOOLDIR) -g
  51. X#DBGFLAG = -g
  52. XDBGFLAG = 
  53. XSOURCES = clear.c io.c menuaux.c operatns.c options.c \
  54. X    rlist.c rolo.c search.c update.c
  55. XOBJECTS = clear.o io.o menuaux.o operatns.o options.o \
  56. X    rlist.o rolo.o search.o update.o
  57. XTOOLOBJ = $(TOOLDIR)/mem.o $(TOOLDIR)/args.o $(TOOLDIR)/ctools.o \
  58. X    $(TOOLDIR)/menu.o
  59. X
  60. XBIN = /usr/local/bin
  61. XMANDIR = /usr/man/lman/man1
  62. XPROG = rolo
  63. XMAN = rolo.1
  64. X
  65. Xrolo: $(OBJECTS)
  66. X    cd $(TOOLDIR) ; make ; cd .. 
  67. X    $(CC) -o rolo $(DBGFLAG) $(CFLAGS) $(OBJECTS) $(TOOLOBJ) $(LIBS)
  68. X
  69. Xinstall:    $(PROG) $(MAN)
  70. X    install -s -o bin -g bin -m 111 $(PROG) $(BIN)
  71. X    install -c -o bin -g bin -m 444 $(MAN) $(MANDIR)
  72. X
  73. X    - mkdir $(RLIB)
  74. X    chown bin $(RLIB)
  75. X    chgrp bin $(RLIB)
  76. X    cp helplib/*.* $(RLIB)
  77. X    chown bin $(RLIB)/*.*
  78. X    chgrp bin $(RLIB)/*.*
  79. X    chmod 444 $(RLIB)/*.*
  80. X
  81. Xclean:
  82. X    rm -f $(OBJECTS) rolo *~ foo $(TOOLDIR)/*.o
  83. X
  84. Xshar:
  85. X    cshar README rolo.1 Makefile helplib > roloshar1
  86. X    cshar *.[ch] > roloshar2
  87. X    cshar toolsdir > roloshar3
  88. END_OF_FILE
  89. if test 1524 -ne `wc -c <'./Makefile.bsd'`; then
  90.     echo shar: \"'./Makefile.bsd'\" unpacked with wrong size!
  91. fi
  92. # end of './Makefile.bsd'
  93. fi
  94. if test -f './Makefile.msc' -a "${1}" != "-c" ; then 
  95.   echo shar: Will not clobber existing file \"'./Makefile.msc'\"
  96. else
  97. echo shar: Extracting \"'./Makefile.msc'\" \(1939 characters\)
  98. sed "s/^X//" >'./Makefile.msc' <<'END_OF_FILE'
  99. X# Makefile for Rolodex - PC/MS-DOS version (Microsoft C)
  100. X#
  101. X# :ts=8
  102. X# :bk=0
  103. X# :ma=1
  104. X#
  105. X
  106. X# Configure for your type of terminal capability database.  
  107. XTERMSTUFF=
  108. X#
  109. XCC = msc
  110. XLIBDIR= d:
  111. XROLOLIB = "rololib"
  112. XTOOLDIR = toolsdir
  113. X#OPTDBG = /Zi
  114. XOPTDBG = /Os
  115. XCFLAGS = /DMSC /DMSDOS /DROLOLIB=$(ROLOLIB) $(TERMSTUFF) /I$(TOOLDIR) $(OPTDBG)
  116. XLDFLAGS =  /CODEVIEW
  117. X
  118. XSOURCES = clear.c io.c menuaux.c operatns.c options.c \
  119. X    rlist.c rolo.c search.c update.c
  120. X
  121. XOBJECTS = clear.obj io.obj menuaux.obj operatns.obj options.obj \
  122. X    rlist.obj rolo.obj search.obj update.obj
  123. X
  124. XTOOLLIB = $(TOOLDIR)/tools
  125. X
  126. X.c.obj:
  127. X    $(CC) $(CFLAGS) $*.c;
  128. X
  129. Xclear.obj:    clear.c
  130. X
  131. Xio.obj:        io.c $(TOOLDIR)\ctools.h rolofilz.h datadef.h
  132. X
  133. Xmenuaux.obj:    menuaux.c $(TOOLDIR)\ctools.h $(TOOLDIR)\args.h $(TOOLDIR)\menu.h rolofilz.h rolodefs.h datadef.h
  134. X
  135. Xoperatns.obj:    operatns.c $(TOOLDIR)\ctools.h $(TOOLDIR)\args.h $(TOOLDIR)\menu.h $(TOOLDIR)\mem.h rolofilz.h rolodefs.h datadef.h choices.h
  136. X
  137. Xoptions.obj:    options.c $(TOOLDIR)\ctools.h $(TOOLDIR)\args.h $(TOOLDIR)\menu.h $(TOOLDIR)\mem.h rolofilz.h rolodefs.h datadef.h choices.h
  138. X
  139. Xrlist.obj:    rlist.c datadef.h
  140. X
  141. Xrolo.obj:    rolo.c $(TOOLDIR)\ctools.h $(TOOLDIR)\args.h $(TOOLDIR)\menu.h $(TOOLDIR)\mem.h rolofilz.h rolodefs.h datadef.h
  142. X
  143. Xsearch.obj:    search.c $(TOOLDIR)\ctools.h $(TOOLDIR)\args.h $(TOOLDIR)\menu.h $(TOOLDIR)\mem.h rolofilz.h rolodefs.h datadef.h choices.h
  144. X
  145. Xupdate.obj:    update.c $(TOOLDIR)\ctools.h $(TOOLDIR)\args.h $(TOOLDIR)\menu.h $(TOOLDIR)\mem.h rolofilz.h rolodefs.h datadef.h choices.h
  146. X
  147. X#
  148. X# Please note that the 'link' line is very Microsoft-C dependent.  Modify as
  149. X# needed for your linker.  For Microsoft-C, you must make a file
  150. X# named 'respfile', consisting of the object filenames for
  151. X# $(OBJECTS) and $(TOOLOBJ), with
  152. X# the subordinate directory 'toolsdir' as part of the name.
  153. X#
  154. Xrolo: $(OBJECTS) respfile
  155. X    cd $(TOOLDIR)
  156. X    del tools.lib
  157. X    make makefile.msc
  158. X    cd ..
  159. X    link $(LDFLAGS) @respfile,rolo.exe,,$(TOOLDIR)\tools;
  160. END_OF_FILE
  161. if test 1939 -ne `wc -c <'./Makefile.msc'`; then
  162.     echo shar: \"'./Makefile.msc'\" unpacked with wrong size!
  163. fi
  164. # end of './Makefile.msc'
  165. fi
  166. if test -f './Makefile.tc' -a "${1}" != "-c" ; then 
  167.   echo shar: Will not clobber existing file \"'./Makefile.tc'\"
  168. else
  169. echo shar: Extracting \"'./Makefile.tc'\" \(1347 characters\)
  170. sed "s/^X//" >'./Makefile.tc' <<'END_OF_FILE'
  171. X# Makefile for Rolodex - PC/MS-DOS version (Turbo-C)
  172. X
  173. X# Configure for your type of terminal capability database.  
  174. X#  if you have termcap,  set TERMSTUFF= -DTERMCAP,  and LIBS= -ltermcap
  175. X#  if you have terminfo, set TERMSTUFF= -DTERMINFO, and LIBS= -lterminfo
  176. X#  if you dont have either, leave them both blank (only "clear_screen" is used)
  177. X#TERMSTUFF= -DTERMCAP
  178. XTERMSTUFF=
  179. X#LIBS= -lcurses -ltermcap
  180. X#
  181. XCC = tcc
  182. XMODEL= s
  183. XLIBDIR= d:
  184. XROLOLIB = "rololib"
  185. XTOOLDIR = toolsdir
  186. XCFLAGS = -DMSDOS -DROLOLIB=$(ROLOLIB) $(TERMSTUFF) -I$(TOOLDIR) -O
  187. XDBGFLAG = 
  188. X
  189. XSOURCES = clear.c io.c menuaux.c operatns.c options.c \
  190. X    rlist.c rolo.c search.c update.c
  191. X
  192. XOBJECTS = clear.obj io.obj menuaux.obj operatns.obj options.obj \
  193. X    rlist.obj rolo.obj search.obj update.obj
  194. X
  195. XTOOLOBJ = $(TOOLDIR)/mem.obj $(TOOLDIR)/args.obj $(TOOLDIR)/ctools.obj \
  196. X    $(TOOLDIR)/menu.obj
  197. X
  198. X.c.obj:
  199. X    $(CC) $(CFLAGS) -c $<
  200. X
  201. X#
  202. X# Please note that the 'tlink' line is very Turbo-C dependent.  Modify as
  203. X# needed for your linker.  For Turbo-C, you must make a file named 'respfile',
  204. X# consisting of the object filenames for $(OBJECTS) and $(TOOLOBJ), with
  205. X# the subordinate directory 'toolsdir' as part of the name.
  206. X#
  207. Xrolo: $(OBJECTS) respfile
  208. X    cd $(TOOLDIR)
  209. X    make -fmakefile.dos tools
  210. X    cd ..
  211. X    tlink /c /x $(LIBDIR)c0$(MODEL) @respfile,rolo.exe,,$(LIBDIR)emu $(LIBDIR)math$(MODEL) $(LIBDIR)C$(MODEL)
  212. END_OF_FILE
  213. if test 1347 -ne `wc -c <'./Makefile.tc'`; then
  214.     echo shar: \"'./Makefile.tc'\" unpacked with wrong size!
  215. fi
  216. # end of './Makefile.tc'
  217. fi
  218. if test -f './Makefile.unx' -a "${1}" != "-c" ; then 
  219.   echo shar: Will not clobber existing file \"'./Makefile.unx'\"
  220. else
  221. echo shar: Extracting \"'./Makefile.unx'\" \(1606 characters\)
  222. sed "s/^X//" >'./Makefile.unx' <<'END_OF_FILE'
  223. X# Makefile for rolo - UNIX generic version
  224. X
  225. X# Configure for your type of terminal capability database.  
  226. X#  if you have termcap,  set TERMSTUFF= -DTERMCAP,  and LIBS= -ltermcap
  227. X#  if you have terminfo, set TERMSTUFF= -DTERMINFO, and LIBS= -lterminfo
  228. X#  if you don't have either, leave them both blank (only "clear_screen" is used)
  229. XTERMSTUFF= -DTERMINFO
  230. XLIBS= -lcurses
  231. X#
  232. XCC = cc
  233. XRLIB    = /usr/local/lib/rolo
  234. XROLOLIB = \"$(RLIB)\"
  235. XTOOLDIR = ./toolsdir
  236. XCFLAGS = -DUNIX -DROLOLIB=$(ROLOLIB) $(TERMSTUFF) -I$(TOOLDIR) -O -s
  237. XDBGFLAG =
  238. XSOURCES = clear.c io.c menuaux.c operatns.c options.c \
  239. X    rlist.c rolo.c search.c update.c
  240. XOBJECTS = clear.o io.o menuaux.o operatns.o options.o \
  241. X    rlist.o rolo.o search.o update.o
  242. XTOOLOBJ = $(TOOLDIR)/mem.o $(TOOLDIR)/args.o $(TOOLDIR)/ctools.o \
  243. X    $(TOOLDIR)/menu.o
  244. X
  245. XBIN = /usr/local/bin
  246. XMS = 1
  247. XMAN = /usr/man/local/man$(MS)
  248. X
  249. Xrolo: $(OBJECTS)
  250. X    cd $(TOOLDIR) ; make tools ; cd ..
  251. X    $(CC) -o rolo $(DBGFLAG) $(CFLAGS) $(OBJECTS) $(TOOLOBJ) $(LIBS)
  252. Xinstall: rolo
  253. X    rm -f $(BIN)/rolo
  254. X    mv rolo $(BIN)/rolo
  255. X    chown bin $(BIN)/rolo
  256. X    chgrp bin $(BIN)/rolo
  257. X    chmod 111 $(BIN)/rolo
  258. X
  259. X    - mkdir $(RLIB)
  260. X    - rm -f $(RLIB)/*.*
  261. X    chown bin $(RLIB)
  262. X    chgrp bin $(RLIB)
  263. X    chmod 775 $(RLIB)
  264. X
  265. X    cp helplib/*.* $(RLIB)
  266. X    chown bin $(RLIB)/*.*
  267. X    chgrp bin $(RLIB)/*.*
  268. X    chmod 444 $(RLIB)/*.*
  269. X
  270. Xman: 
  271. X    rm -f $(MAN)/rolo.1
  272. X    cp rolo.1 $(MAN)/rolo.$(MS)
  273. X    chown bin $(MAN)/rolo.$(MS)
  274. X    chgrp bin $(MAN)/rolo.$(MS)
  275. X    chmod 444 $(MAN)/rolo.$(MS)
  276. X    man rolo
  277. X
  278. Xclean:
  279. X    rm -f $(OBJECTS) rolo *~ foo $(TOOLDIR)/*.o
  280. X
  281. Xshar:
  282. X    cshar README rolo.1 Makefile helplib > roloshar1
  283. X    cshar *.[ch] > roloshar2
  284. X    cshar toolsdir > roloshar3
  285. END_OF_FILE
  286. if test 1606 -ne `wc -c <'./Makefile.unx'`; then
  287.     echo shar: \"'./Makefile.unx'\" unpacked with wrong size!
  288. fi
  289. # end of './Makefile.unx'
  290. fi
  291. if test -f './Part01' -a "${1}" != "-c" ; then 
  292.   echo shar: Will not clobber existing file \"'./Part01'\"
  293. else
  294. echo shar: Extracting \"'./Part01'\" \(0 characters\)
  295. sed "s/^X//" >'./Part01' <<'END_OF_FILE'
  296. END_OF_FILE
  297. if test 0 -ne `wc -c <'./Part01'`; then
  298.     echo shar: \"'./Part01'\" unpacked with wrong size!
  299. fi
  300. # end of './Part01'
  301. fi
  302. if test -f './README.Z' -a "${1}" != "-c" ; then 
  303.   echo shar: Will not clobber existing file \"'./README.Z'\"
  304. else
  305. echo shar: Extracting \"'./README.Z'\" \(0 characters\)
  306. sed "s/^X//" >'./README.Z' <<'END_OF_FILE'
  307. END_OF_FILE
  308. if test 0 -ne `wc -c <'./README.Z'`; then
  309.     echo shar: \"'./README.Z'\" unpacked with wrong size!
  310. fi
  311. # end of './README.Z'
  312. fi
  313. if test -f './choices.h' -a "${1}" != "-c" ; then 
  314.   echo shar: Will not clobber existing file \"'./choices.h'\"
  315. else
  316. echo shar: Extracting \"'./choices.h'\" \(703 characters\)
  317. sed "s/^X//" >'./choices.h' <<'END_OF_FILE'
  318. X/* choices.h */
  319. Xtypedef enum { P_CONTINUE, P_NEXT_PERSON, P_ABORT, P_HELP } P_Choices;
  320. X
  321. Xtypedef enum { 
  322. X        
  323. X        M_SEARCH_BY_OTHER, AM_SEARCH_BY_NAME, M_PRINT_TO_LASER_PRINTER,
  324. X        M_HELP, M_EXIT, M_PERUSE, M_SAVE, M_ADD
  325. X
  326. X      } Main_Choices;
  327. X
  328. Xtypedef enum { 
  329. X
  330. X        A_ABORT_ADD, A_BACKUP, A_FILL_IN_REST,
  331. X        AA_ABORT_ROLO, A_HELP, A_NO_DATA
  332. X
  333. X      } Add_Choices;
  334. X
  335. Xtypedef enum { 
  336. X        
  337. X        E_ABORT, E_UPDATE, E_DELETE, E_CONTINUE, E_PREV, E_HELP, E_SCAN
  338. X        
  339. X      } E_Choices;
  340. X
  341. Xtypedef enum { U_ABORT, U_HELP, U_END_UPDATE } U_Choices;
  342. X
  343. Xtypedef enum { S_ABORT, S_HELP, S_SCAN_ONE_BY_ONE } S_Choices;
  344. X
  345. Xtypedef enum { O_ABORT, O_HELP, O_BACKUP, O_DONE_OTHERS } O_Choices;
  346. END_OF_FILE
  347. if test 703 -ne `wc -c <'./choices.h'`; then
  348.     echo shar: \"'./choices.h'\" unpacked with wrong size!
  349. fi
  350. # end of './choices.h'
  351. fi
  352. if test -f './clear.c' -a "${1}" != "-c" ; then 
  353.   echo shar: Will not clobber existing file \"'./clear.c'\"
  354. else
  355. echo shar: Extracting \"'./clear.c'\" \(1884 characters\)
  356. sed "s/^X//" >'./clear.c' <<'END_OF_FILE'
  357. X/* clear.c */
  358. X#include <stdio.h>
  359. X#ifdef TERMINFO
  360. X#include <term.h>
  361. X#endif
  362. X#undef putchar
  363. X
  364. Xint putchar();
  365. X
  366. X#ifdef TERMCAP
  367. Xstatic int ok_to_clear;
  368. X#endif
  369. X
  370. X#ifdef TERMINFO
  371. Xstatic int ok_to_clear;
  372. X#endif
  373. X
  374. X#ifdef TERMCAP
  375. Xstatic char clear_screen[128] = 0;
  376. Xstatic int lines;
  377. X#endif
  378. X
  379. X#ifdef MSDOS
  380. X/*
  381. X * IF we assume the standard ANSI terminal driver, we can't go TOO far wrong...
  382. X * but allow a bailout.  Making this assumption, we realize that it's a
  383. X * VT-100 sequence, so for this one file...
  384. X */
  385. X#ifndef GENERIC_SCR
  386. X#define VMS
  387. X#endif
  388. X#endif
  389. X
  390. X#ifdef VMS
  391. X/*
  392. X * VMS is so heavily targeted to VT-100 screens that we can assume...
  393. X */
  394. Xstatic char vt100_clear[128] = { '\033','[','H','\033','[','2','J','\0' };
  395. X#endif
  396. X
  397. X
  398. X#ifdef GENERIC_SCR
  399. X/* This is pretty generic... */
  400. X#define CLR_LINES    30
  401. X#endif
  402. X
  403. Xclearinit ()
  404. X{
  405. X#ifdef TERMINFO
  406. X  int i;        
  407. X  char *getenv();
  408. X  char *name = "TERM";
  409. X/* setupterm(getenv(name),1,&i); *//* As of at least SVID Issue 2, Vol. 2 */
  410. X  i = setterm(getenv(name));
  411. X  ok_to_clear = (i == 1) ? 1 : 0;
  412. X  if (i != 1) {
  413. X     fprintf(stderr,"Warning: Terminal type unknown\n");
  414. X  }
  415. X  return (i == 1) ? 0 : -1;
  416. X#endif
  417. X#ifdef TERMCAP
  418. X  char tc[1024];
  419. X  char *ptr = clear_screen;
  420. X  char *getenv();
  421. X  char *name = "TERM";
  422. X  
  423. X  if (tgetent(tc, getenv(name)) < 1) {
  424. X    ok_to_clear = 0;
  425. X    return;
  426. X  }
  427. X  tgetstr("cl", &ptr);
  428. X  lines = tgetnum("li");
  429. X  ok_to_clear = (clear_screen[0] != 0 && lines > 0);
  430. X
  431. X#endif
  432. X}        
  433. X        
  434. Xclear_the_screen ()
  435. X{
  436. X#ifdef TERMINFO
  437. X  if (!ok_to_clear) return;        
  438. X  tputs(clear_screen,lines,putchar);
  439. X  fflush(stdout);
  440. X#endif
  441. X#ifdef TERMCAP
  442. X  if (!ok_to_clear) return;
  443. X  tputs(clear_screen,lines,putchar);
  444. X  fflush(stdout);
  445. X#endif
  446. X
  447. X#ifdef VMS
  448. X  fputs(vt100_clear,stdout);
  449. X  fflush(stdout);
  450. X#endif
  451. X#ifdef GENERIC_SCR
  452. X  {
  453. X    register int index;
  454. X
  455. X    for(index = 0;index < CLR_LINES ;index++)
  456. X        putchar('\n');
  457. X  }
  458. X  fflush(stdout);
  459. X#endif
  460. X}
  461. END_OF_FILE
  462. if test 1884 -ne `wc -c <'./clear.c'`; then
  463.     echo shar: \"'./clear.c'\" unpacked with wrong size!
  464. fi
  465. # end of './clear.c'
  466. fi
  467. if test ! -d './helplib' ; then
  468.     echo shar: Creating directory \"'./helplib'\"
  469.     mkdir './helplib'
  470. fi
  471. if test -f './helplib/addhelp.hlp' -a "${1}" != "-c" ; then 
  472.   echo shar: Will not clobber existing file \"'./helplib/addhelp.hlp'\"
  473. else
  474. echo shar: Extracting \"'./helplib/addhelp.hlp'\" \(1408 characters\)
  475. sed "s/^X//" >'./helplib/addhelp.hlp' <<'END_OF_FILE'
  476. XYou are adding a new entry to your rolodex database.  If you want to
  477. Xget back to the main menu type the character '\' followed by RETURN.
  478. X
  479. XEach entry is composed of 7 fixed items, which are Name, Work Phone,
  480. XHome Phone, Company, Work Address, Home Address, and Remarks.  You are
  481. Xbeing prompted to give a value to each item, one after the other.  Simply
  482. Xtype in some characters and end with a RETURN.  If you realize you've made
  483. Xa mistake after hitting RETURN, type '^' RETURN, which will prompt you
  484. Xagain for the item you just entered.  If you have no information for a 
  485. Xparticular item, simply type RETURN and you will be prompted for the next
  486. Xitem.   Finally, the program will prompt you with 'Other fields? '.   At
  487. Xthis point type 'no' RETURN unless you know what you are doing (see below).
  488. X
  489. X     (Advanced feature) If you have entered all the information about a person
  490. Xyou have, and the program is still prompting you for fields, type '!' RETURN
  491. Xand it will assume that all the remaining fields are to be left empty.
  492. X     (Advanced feature) You can add items in addition to those listed above.
  493. XTo do so answer 'yes' to the 'Other fields? ' prompt and then ask for help.
  494. X     (Advanced feature) The character ';' is used as a line separator.  If
  495. Xyou typed in '245 First St.,; Cambridge, MA 02139', when this information was
  496. Xdisplayed the street address and city/state would print out on different lines.
  497. END_OF_FILE
  498. if test 1408 -ne `wc -c <'./helplib/addhelp.hlp'`; then
  499.     echo shar: \"'./helplib/addhelp.hlp'\" unpacked with wrong size!
  500. fi
  501. # end of './helplib/addhelp.hlp'
  502. fi
  503. if test -f './helplib/addinfo.hlp' -a "${1}" != "-c" ; then 
  504.   echo shar: Will not clobber existing file \"'./helplib/addinfo.hlp'\"
  505. else
  506. echo shar: Extracting \"'./helplib/addinfo.hlp'\" \(67 characters\)
  507. sed "s/^X//" >'./helplib/addinfo.hlp' <<'END_OF_FILE'
  508. XAdd a rolodex entry:  (? for help, ^ to back up, \ to abort add)
  509. X
  510. X
  511. END_OF_FILE
  512. if test 67 -ne `wc -c <'./helplib/addinfo.hlp'`; then
  513.     echo shar: \"'./helplib/addinfo.hlp'\" unpacked with wrong size!
  514. fi
  515. # end of './helplib/addinfo.hlp'
  516. fi
  517. if test -f './helplib/confirm.hlp' -a "${1}" != "-c" ; then 
  518.   echo shar: Will not clobber existing file \"'./helplib/confirm.hlp'\"
  519. else
  520. echo shar: Extracting \"'./helplib/confirm.hlp'\" \(98 characters\)
  521. sed "s/^X//" >'./helplib/confirm.hlp' <<'END_OF_FILE'
  522. XYou are being asked to confirm your decision.  Enter either a 'y' to continue,
  523. Xor a 'n' to abort.
  524. END_OF_FILE
  525. if test 98 -ne `wc -c <'./helplib/confirm.hlp'`; then
  526.     echo shar: \"'./helplib/confirm.hlp'\" unpacked with wrong size!
  527. fi
  528. # end of './helplib/confirm.hlp'
  529. fi
  530. if test -f './helplib/entrymnu.hlp' -a "${1}" != "-c" ; then 
  531.   echo shar: Will not clobber existing file \"'./helplib/entrymnu.hlp'\"
  532. else
  533. echo shar: Extracting \"'./helplib/entrymnu.hlp'\" \(223 characters\)
  534. sed "s/^X//" >'./helplib/entrymnu.hlp' <<'END_OF_FILE'
  535. X
  536. X   RETURN  : continue the scan.             %   : scan rolodex from this point.
  537. X   +       : update or add to the entry.    <   : display previous entry.
  538. X   -       : delete the entire entry.       \   : abort the scan.
  539. X
  540. X
  541. END_OF_FILE
  542. if test 223 -ne `wc -c <'./helplib/entrymnu.hlp'`; then
  543.     echo shar: \"'./helplib/entrymnu.hlp'\" unpacked with wrong size!
  544. fi
  545. # end of './helplib/entrymnu.hlp'
  546. fi
  547. if test -f './helplib/escan.hlp' -a "${1}" != "-c" ; then 
  548.   echo shar: Will not clobber existing file \"'./helplib/escan.hlp'\"
  549. else
  550. echo shar: Extracting \"'./helplib/escan.hlp'\" \(847 characters\)
  551. sed "s/^X//" >'./helplib/escan.hlp' <<'END_OF_FILE'
  552. XThe rolodex program is displaying each entry in your rolodex database
  553. X(the entries are ordered alphabetically) one by one.  After an entry
  554. Xhas been displayed, you have the option to
  555. X
  556. X  -- have the next entry displayed (type RETURN)
  557. X  -- have the previous entry displayed by (type '<' RETURN)
  558. X  -- delete the entry from your rolodex (type '-' RETURN)
  559. X  -- change the information contained in this entry (type '+' RETURN)
  560. X  -- abort this sequential display mode and go back to the main menu 
  561. X     (type '\' RETURN)
  562. X
  563. XIf you elect to delete the entry, the message 'Entry deleted' will be
  564. Xdisplayed briefly, and then the next entry will be displayed.
  565. X
  566. XIf you elect to update the entry, after you have completed the update
  567. Xoperation the message 'Displaying next entry in scan list' will be
  568. Xdisplayed briefly, and then the next entry will be displayed.
  569. X
  570. END_OF_FILE
  571. if test 847 -ne `wc -c <'./helplib/escan.hlp'`; then
  572.     echo shar: \"'./helplib/escan.hlp'\" unpacked with wrong size!
  573. fi
  574. # end of './helplib/escan.hlp'
  575. fi
  576. if test -f './helplib/esearch.hlp' -a "${1}" != "-c" ; then 
  577.   echo shar: Will not clobber existing file \"'./helplib/esearch.hlp'\"
  578. else
  579. echo shar: Extracting \"'./helplib/esearch.hlp'\" \(1072 characters\)
  580. sed "s/^X//" >'./helplib/esearch.hlp' <<'END_OF_FILE'
  581. XThe rolodex program is displaying each entry that matches the search string
  582. Xyou provided, one by one.  After an entry has been displayed, you have
  583. Xthe option to
  584. X
  585. X  -- have the next entry displayed (type RETURN)
  586. X  -- have the previous entry displayed by (type '<' RETURN)
  587. X  -- delete the entry from your rolodex (type '-' RETURN)
  588. X  -- change the information contained in this entry (type '+' RETURN)
  589. X  -- abort this sequential display mode and go back to the main menu 
  590. X     (type '\' RETURN)
  591. X
  592. X     If you elect to delete the entry, the message 'Entry deleted' will
  593. Xbe displayed briefly, and then the next entry will be displayed.
  594. X     If you elect to update the entry, after you have completed the
  595. Xupdate operation the message 'Displaying next entry in scan list' will
  596. Xbe displayed briefly, and then the next entry will be displayed.
  597. X     If only one entry matched your search string, or the entry being
  598. Xdisplayed is the last entry which matches, if you try to continue the
  599. Xprogram will inform you that there are no more matching entries and
  600. Xreturn you to the main menu.
  601. X
  602. END_OF_FILE
  603. if test 1072 -ne `wc -c <'./helplib/esearch.hlp'`; then
  604.     echo shar: \"'./helplib/esearch.hlp'\" unpacked with wrong size!
  605. fi
  606. # end of './helplib/esearch.hlp'
  607. fi
  608. if test -f './helplib/fldsrch.hlp' -a "${1}" != "-c" ; then 
  609.   echo shar: Will not clobber existing file \"'./helplib/fldsrch.hlp'\"
  610. else
  611. echo shar: Extracting \"'./helplib/fldsrch.hlp'\" \(1035 characters\)
  612. sed "s/^X//" >'./helplib/fldsrch.hlp' <<'END_OF_FILE'
  613. XYou have asked to search the rolodex database by some other item than name.
  614. XFor instance, if you wanted to find people who worked in Cambridge, you could
  615. Xselect the 'Work Address' item and use as a search string 'Cambridge'.  If
  616. Xthis is not what you want to do type '\' RETURN to get back to the main menu.
  617. X
  618. XTo select an item to search by, type the number of the item.  It will
  619. Xthen prompt you for a search string.  Type in what you want to search
  620. Xfor followed by RETURN.  The program will then show you the entries that
  621. Xit has found that match your search criteria.
  622. X
  623. X(Advanced feature) You can search by items which you have defined, as well as
  624. Xthe standard items.  The last choice is not a standard item but an option to
  625. Xallow you to type in the name of your own user-defined item name.  For
  626. Xinstance, if your rolodex database contained 'Net Address' items, you could
  627. Xsearch for Net Addresses containing 'ihnp4' by selecting the last choice
  628. Xand typing in 'Net Address' RETURN, followed by 'ihnp4' RETURN at the
  629. Xappropriate prompts.
  630. X
  631. END_OF_FILE
  632. if test 1035 -ne `wc -c <'./helplib/fldsrch.hlp'`; then
  633.     echo shar: \"'./helplib/fldsrch.hlp'\" unpacked with wrong size!
  634. fi
  635. # end of './helplib/fldsrch.hlp'
  636. fi
  637. if test -f './helplib/lockinfo.dos' -a "${1}" != "-c" ; then 
  638.   echo shar: Will not clobber existing file \"'./helplib/lockinfo.dos'\"
  639. else
  640. echo shar: Extracting \"'./helplib/lockinfo.dos'\" \(583 characters\)
  641. sed "s/^X//" >'./helplib/lockinfo.dos' <<'END_OF_FILE'
  642. XYour rolodex is already in use!
  643. X
  644. XEither someone else on a networked DOS system is using and possibly modifying
  645. Xyour rolodex, or else you forgot to properly exit a previous use of your
  646. Xrolodex, or possibly the system crashed while you were using your rolodex the
  647. Xlast time.
  648. X
  649. XYou can check on the lock file by typing:
  650. X
  651. XDIR <d:>\ROLODATA.LCK  (Where <d:> is your current disk drive, i.e., A:)
  652. X
  653. XIf you're on a networked system, and this file is present and you're not
  654. Xrunning rolodex, find out who may be running it.  Otherwise, you can clean up
  655. Xby simply typing:
  656. X
  657. XDEL <d:>\ROLODATA.LCK
  658. END_OF_FILE
  659. if test 583 -ne `wc -c <'./helplib/lockinfo.dos'`; then
  660.     echo shar: \"'./helplib/lockinfo.dos'\" unpacked with wrong size!
  661. fi
  662. # end of './helplib/lockinfo.dos'
  663. fi
  664. if test -f './helplib/lockinfo.unx' -a "${1}" != "-c" ; then 
  665.   echo shar: Will not clobber existing file \"'./helplib/lockinfo.unx'\"
  666. else
  667. echo shar: Extracting \"'./helplib/lockinfo.unx'\" \(735 characters\)
  668. sed "s/^X//" >'./helplib/lockinfo.unx' <<'END_OF_FILE'
  669. XYour rolodex is already in use!
  670. X
  671. XEither someone else is using and possibly modifying your rolodex, or else
  672. Xyou forgot to exit a previous use of your rolodex, or possibly the system
  673. Xcrashed while you were using your rolodex the last time.
  674. X
  675. XYou can find out who is using your rolodex by typing
  676. X
  677. Xls -l ~/.rolodexdata.lock
  678. X
  679. XThe third column of the output will be a user's name.  If the name is
  680. Xnot yours, then you should find out what that person is doing with your
  681. Xrolodex and ask him/her to let you know when they are finished.
  682. X
  683. XIf the name is your own, then it is probably safe to remove the lock file.
  684. X(It is possible that someone else is logged in as you, however...)
  685. XType
  686. X
  687. Xrm ~/.rolodexdata.lock
  688. X
  689. Xand then you can use your rolodex.
  690. X
  691. END_OF_FILE
  692. if test 735 -ne `wc -c <'./helplib/lockinfo.unx'`; then
  693.     echo shar: \"'./helplib/lockinfo.unx'\" unpacked with wrong size!
  694. fi
  695. # end of './helplib/lockinfo.unx'
  696. fi
  697. if test -f './helplib/lockinfo.vms' -a "${1}" != "-c" ; then 
  698.   echo shar: Will not clobber existing file \"'./helplib/lockinfo.vms'\"
  699. else
  700. echo shar: Extracting \"'./helplib/lockinfo.vms'\" \(811 characters\)
  701. sed "s/^X//" >'./helplib/lockinfo.vms' <<'END_OF_FILE'
  702. XYour rolodex is already in use!
  703. X
  704. XEither someone else is using and possibly modifying your rolodex, or else
  705. Xyou forgot to exit a previous use of your rolodex, or possibly the system
  706. Xcrashed while you were using your rolodex the last time.
  707. X
  708. XYou can find out who is using your rolodex by typing
  709. X
  710. XDIR/OWN SYS$LOGIN:ROLODEXDATA.LOCK
  711. X
  712. XThe last item on the line will be [GROUP,OWNER], where OWNER is the login
  713. Xof the person owning the lock file.  If the login is not yours, then you
  714. Xshould find out what that person is doing with your rolodex and ask
  715. Xhim/her to let you know when they are finished.
  716. X
  717. XIf the name is your own, then it is probably safe to remove the lock file.
  718. X(It is possible that someone else is logged in as you, however...)
  719. XType
  720. X
  721. XDEL SYS$LOGIN:ROLODEXDATA.LOCK;*
  722. X
  723. Xand then you can use your rolodex.
  724. X
  725. END_OF_FILE
  726. if test 811 -ne `wc -c <'./helplib/lockinfo.vms'`; then
  727.     echo shar: \"'./helplib/lockinfo.vms'\" unpacked with wrong size!
  728. fi
  729. # end of './helplib/lockinfo.vms'
  730. fi
  731. if test -f './helplib/mainmenu.hlp' -a "${1}" != "-c" ; then 
  732.   echo shar: Will not clobber existing file \"'./helplib/mainmenu.hlp'\"
  733. else
  734. echo shar: Extracting \"'./helplib/mainmenu.hlp'\" \(396 characters\)
  735. sed "s/^X//" >'./helplib/mainmenu.hlp' <<'END_OF_FILE'
  736. X        TOP LEVEL MENU
  737. X
  738. X  +  :  add a new entry
  739. X  %  :  scan the rolodex entry by entry
  740. X  $  :  search by some item other than 'Name'
  741. X  *  :  save any changes made so far
  742. X  !  :  pretty print the rolodex database to a disk file
  743. X  \  :  exit (any changes you've made will be saved)
  744. X
  745. XTo search for an entry by name, just type in the name.
  746. XTo update or delete an entry, first find it by searching.
  747. X
  748. END_OF_FILE
  749. if test 396 -ne `wc -c <'./helplib/mainmenu.hlp'`; then
  750.     echo shar: \"'./helplib/mainmenu.hlp'\" unpacked with wrong size!
  751. fi
  752. # end of './helplib/mainmenu.hlp'
  753. fi
  754. if test -f './helplib/mnymtch.hlp' -a "${1}" != "-c" ; then 
  755.   echo shar: Will not clobber existing file \"'./helplib/mnymtch.hlp'\"
  756. else
  757. echo shar: Extracting \"'./helplib/mnymtch.hlp'\" \(370 characters\)
  758. sed "s/^X//" >'./helplib/mnymtch.hlp' <<'END_OF_FILE'
  759. XRolodex found too many field entries matching your search string to display
  760. Xeach record on the screen and allow you to select each one by number.  Instead,
  761. Xyou may view the entire list, one-by-one, by entering 'v' at the prompt;
  762. Xor, you may abort this search by entering '\', and request another search
  763. Xusing a more unique search string to reduce the number of matches.
  764. END_OF_FILE
  765. if test 370 -ne `wc -c <'./helplib/mnymtch.hlp'`; then
  766.     echo shar: \"'./helplib/mnymtch.hlp'\" unpacked with wrong size!
  767. fi
  768. # end of './helplib/mnymtch.hlp'
  769. fi
  770. if test -f './helplib/moption.hlp' -a "${1}" != "-c" ; then 
  771.   echo shar: Will not clobber existing file \"'./helplib/moption.hlp'\"
  772. else
  773. echo shar: Extracting \"'./helplib/moption.hlp'\" \(1391 characters\)
  774. sed "s/^X//" >'./helplib/moption.hlp' <<'END_OF_FILE'
  775. X     This is the TMC Rolodex, an online way to store and retrieve information
  776. Xabout people you know, and other important pieces of data.
  777. X     Data is stored in units called entries..  There will generally be an entry
  778. Xfor each person in your rolodex.  Inside entries are items.  Items store such
  779. Xthings as a person's name, his phone number(s), and address(es).  You can
  780. Xchange items or add new ones.  You can create or delete entire entries also.
  781. X     At any time you can type the character '\' followed by RETURN to abort
  782. Xwhat you are currently doing.  Most of the time '?' or 'help' followed by
  783. XRETURN will get you more information on what you are expected to type in next.
  784. X     If for some reason you wish to terminate the rolodex program without
  785. Xsaving any changes you have made, hold down the CTRL key and type 'c'.
  786. X
  787. X     When you are searching for information, typing in any part of the
  788. Xinformation that uniquely identifies it is good enough.  For instance, if you
  789. Xwere looking for John Finklesnort, typing 'John' is probably not a good idea
  790. Xbecause you probably have a few names that contain 'John', but typing 'Finkle'
  791. Xor 'snort' will probably uniquely identify the entry you want.  The search
  792. Xprogram is completely case-insensitive.
  793. X     The rolodex search is completely case-insensitive (e.g., searching for
  794. X'Finkle' is the same as searching for 'finkle' is the same as 'fInKLe').
  795. X
  796. END_OF_FILE
  797. if test 1391 -ne `wc -c <'./helplib/moption.hlp'`; then
  798.     echo shar: \"'./helplib/moption.hlp'\" unpacked with wrong size!
  799. fi
  800. # end of './helplib/moption.hlp'
  801. fi
  802. if test -f './helplib/moptions.hlp' -a "${1}" != "-c" ; then 
  803.   echo shar: Will not clobber existing file \"'./helplib/moptions.hlp'\"
  804. else
  805. echo shar: Extracting \"'./helplib/moptions.hlp'\" \(748 characters\)
  806. sed "s/^X//" >'./helplib/moptions.hlp' <<'END_OF_FILE'
  807. XThis is the TMC Rolodex, an online way to store and retrieve information
  808. Xabout people you know, and other important pieces of data.
  809. X
  810. XAt any time you can type the character '\' followed by RETURN to abort
  811. Xwhat you are currently doing.  Most of the time '?' or 'help' followed by
  812. XRETURN will get you more information on what you are expected to type in
  813. Xnext.
  814. X
  815. XAt the Top Level Menu, which you are currently at, you can type the following:
  816. X
  817. X'+'     to begin entering information about a new person.
  818. X'%'     to begin scanning your rolodex, entry by entry.
  819. X'!'     to print out your rolodex in a nice format.
  820. X'*'     to save any changes you have made to your rolodex.
  821. X'\'     to exit the rolodex program.
  822. X
  823. XIf you wish to find an already existing entry
  824. X
  825. END_OF_FILE
  826. if test 748 -ne `wc -c <'./helplib/moptions.hlp'`; then
  827.     echo shar: \"'./helplib/moptions.hlp'\" unpacked with wrong size!
  828. fi
  829. # end of './helplib/moptions.hlp'
  830. fi
  831. if test -f './helplib/moreflds.hlp' -a "${1}" != "-c" ; then 
  832.   echo shar: Will not clobber existing file \"'./helplib/moreflds.hlp'\"
  833. else
  834. echo shar: Extracting \"'./helplib/moreflds.hlp'\" \(423 characters\)
  835. sed "s/^X//" >'./helplib/moreflds.hlp' <<'END_OF_FILE'
  836. XAll basic fields for the new entry have either been entered or skipped at
  837. Xthis point.  You may either save the entry now, or you may create your own
  838. Xcustom fields, consisting of user-defined field names and contents.  These
  839. Xfields can be selected later by name for content searches in the same way
  840. Xas the basic fields.
  841. X
  842. XTo create user fields, answer 'y' to the prompt.
  843. XTo terminate the entry now, answer 'n' to the prompt.
  844. END_OF_FILE
  845. if test 423 -ne `wc -c <'./helplib/moreflds.hlp'`; then
  846.     echo shar: \"'./helplib/moreflds.hlp'\" unpacked with wrong size!
  847. fi
  848. # end of './helplib/moreflds.hlp'
  849. fi
  850. if test -f './helplib/newadd.hlp' -a "${1}" != "-c" ; then 
  851.   echo shar: Will not clobber existing file \"'./helplib/newadd.hlp'\"
  852. else
  853. echo shar: Extracting \"'./helplib/newadd.hlp'\" \(195 characters\)
  854. sed "s/^X//" >'./helplib/newadd.hlp' <<'END_OF_FILE'
  855. XAt this point, you have the choice of adding the newly-created entry to
  856. Xthe Rolodex database, or aborting this action.  If you abort, all information
  857. Xentered for the new entry will be discarded.
  858. END_OF_FILE
  859. if test 195 -ne `wc -c <'./helplib/newadd.hlp'`; then
  860.     echo shar: \"'./helplib/newadd.hlp'\" unpacked with wrong size!
  861. fi
  862. # end of './helplib/newadd.hlp'
  863. fi
  864. if test -f './helplib/otherfmt.hlp' -a "${1}" != "-c" ; then 
  865.   echo shar: Will not clobber existing file \"'./helplib/otherfmt.hlp'\"
  866. else
  867. echo shar: Extracting \"'./helplib/otherfmt.hlp'\" \(770 characters\)
  868. sed "s/^X//" >'./helplib/otherfmt.hlp' <<'END_OF_FILE'
  869. XIn addition to the fixed fields in a Rolodex entry, you may add an arbitrary
  870. Xnumber of fields for which you choose the field name and meaning.  The way
  871. Xyou define these fields is slightly different than for the fixed fields,
  872. Xsince you must provide not only the field contents but also the name of
  873. Xthe field; this is done by typing the name, followed by a colon (:), and
  874. Xthen the contents of the field as for the basic items.  Note that you may
  875. Xelect only to create the field with no contents, by typing the name and
  876. Xa colon.  To terminate creation of new fields, simply type a return with
  877. Xno field name or delimiter.
  878. X
  879. XAt the "<name>: data" prompt, you may also enter the following responses:
  880. X
  881. X    \:    Abort
  882. X    ?:    This help menu
  883. X    ^:    Delete the last user-defined field entered
  884. X
  885. END_OF_FILE
  886. if test 770 -ne `wc -c <'./helplib/otherfmt.hlp'`; then
  887.     echo shar: \"'./helplib/otherfmt.hlp'\" unpacked with wrong size!
  888. fi
  889. # end of './helplib/otherfmt.hlp'
  890. fi
  891. if test -f './helplib/pkentry.hlp' -a "${1}" != "-c" ; then 
  892.   echo shar: Will not clobber existing file \"'./helplib/pkentry.hlp'\"
  893. else
  894. echo shar: Extracting \"'./helplib/pkentry.hlp'\" \(399 characters\)
  895. sed "s/^X//" >'./helplib/pkentry.hlp' <<'END_OF_FILE'
  896. XAfter requesting a field search, you have been presented with a menu of
  897. Xmatching entries.  You may enter the following responses:
  898. X
  899. XCarriage return :       Scan the entries, one by one, in the order given.
  900. X
  901. XEntry number    :       Each entry is numbered; examine the entry for which
  902. X                        you've entered the corresponding number.
  903. X
  904. X\               :       Return to the main menu.
  905. X
  906. X
  907. END_OF_FILE
  908. if test 399 -ne `wc -c <'./helplib/pkentry.hlp'`; then
  909.     echo shar: \"'./helplib/pkentry.hlp'\" unpacked with wrong size!
  910. fi
  911. # end of './helplib/pkentry.hlp'
  912. fi
  913. if test -f './helplib/pkntmenu.hlp' -a "${1}" != "-c" ; then 
  914.   echo shar: Will not clobber existing file \"'./helplib/pkntmenu.hlp'\"
  915. else
  916. echo shar: Extracting \"'./helplib/pkntmenu.hlp'\" \(131 characters\)
  917. sed "s/^X//" >'./helplib/pkntmenu.hlp' <<'END_OF_FILE'
  918. XType number of the entry you wish to view,
  919. Xor type RETURN to view each entry one by one,
  920. Xor type '\' to go back to the main menu.
  921. X
  922. END_OF_FILE
  923. if test 131 -ne `wc -c <'./helplib/pkntmenu.hlp'`; then
  924.     echo shar: \"'./helplib/pkntmenu.hlp'\" unpacked with wrong size!
  925. fi
  926. # end of './helplib/pkntmenu.hlp'
  927. fi
  928. if test -f './helplib/poptions.hlp' -a "${1}" != "-c" ; then 
  929.   echo shar: Will not clobber existing file \"'./helplib/poptions.hlp'\"
  930. else
  931. echo shar: Extracting \"'./helplib/poptions.hlp'\" \(649 characters\)
  932. sed "s/^X//" >'./helplib/poptions.hlp' <<'END_OF_FILE'
  933. XAt this point you can type the following:
  934. X
  935. Xthe RETURN key.
  936. Xthe 'n' key followed by RETURN.
  937. Xthe '\' (backslash) key followed by RETURN.
  938. X
  939. XIf you used the rolodex program by typing something like 'rolo john'
  940. Xthen typing RETURN will find for you the next person in your rolodex
  941. Xwho has the letters 'john' as part of their name.
  942. X
  943. XIf you used the rolodex program by typing something like 'rolo john mary'
  944. Xthen typing 'n' after the program had displayed one of the people whose
  945. Xname contained 'john' would stop the program from looking for any more
  946. X'john's and start looking for 'mary'.
  947. X
  948. XIf you just wish to exit the program type the backslash character.
  949. X
  950. END_OF_FILE
  951. if test 649 -ne `wc -c <'./helplib/poptions.hlp'`; then
  952.     echo shar: \"'./helplib/poptions.hlp'\" unpacked with wrong size!
  953. fi
  954. # end of './helplib/poptions.hlp'
  955. fi
  956. if test -f './helplib/poptmenu.hlp' -a "${1}" != "-c" ; then 
  957.   echo shar: Will not clobber existing file \"'./helplib/poptmenu.hlp'\"
  958. else
  959. echo shar: Extracting \"'./helplib/poptmenu.hlp'\" \(151 characters\)
  960. sed "s/^X//" >'./helplib/poptmenu.hlp' <<'END_OF_FILE'
  961. XOPTIONS:
  962. X   RETURN  -- continue looking for same name.
  963. X   'n'     -- look for the next name you asked about.
  964. X   '\'     -- abort the rolodex program.
  965. X
  966. END_OF_FILE
  967. if test 151 -ne `wc -c <'./helplib/poptmenu.hlp'`; then
  968.     echo shar: \"'./helplib/poptmenu.hlp'\" unpacked with wrong size!
  969. fi
  970. # end of './helplib/poptmenu.hlp'
  971. fi
  972. if test -f './helplib/srchstr.hlp' -a "${1}" != "-c" ; then 
  973.   echo shar: Will not clobber existing file \"'./helplib/srchstr.hlp'\"
  974. else
  975. echo shar: Extracting \"'./helplib/srchstr.hlp'\" \(242 characters\)
  976. sed "s/^X//" >'./helplib/srchstr.hlp' <<'END_OF_FILE'
  977. XYou are being asked to enter a character string to be used for a field content
  978. Xsearch.  This string may either be the entire value to be found, or any
  979. Xsubstring; it is case-insensitive.  Please note the you do NOT have wildcard
  980. Xcapabilities.
  981. END_OF_FILE
  982. if test 242 -ne `wc -c <'./helplib/srchstr.hlp'`; then
  983.     echo shar: \"'./helplib/srchstr.hlp'\" unpacked with wrong size!
  984. fi
  985. # end of './helplib/srchstr.hlp'
  986. fi
  987. if test -f './helplib/update.hlp' -a "${1}" != "-c" ; then 
  988.   echo shar: Will not clobber existing file \"'./helplib/update.hlp'\"
  989. else
  990. echo shar: Extracting \"'./helplib/update.hlp'\" \(1254 characters\)
  991. sed "s/^X//" >'./helplib/update.hlp' <<'END_OF_FILE'
  992. XYou have asked to change some information contained in the entry that was
  993. Xbeing displayed before you typed '+'.  If this is not what you want type '\'
  994. XRETURN to get back to the main menu.
  995. X
  996. XCurrently, the program is displaying the name of each item in the entry and
  997. Xits contents (some items may have no contents).  Each item is numbered.
  998. XSimply type the number of the item whose contents you wish to change.  The
  999. Xprogram will then display the old contents of the item and ask you to type in
  1000. Xsome text which will become the new contents.  Once you have done this for
  1001. Xeach item you wish to change, type RETURN when it again asks for you an item
  1002. Xnumber.  It will then print out the revised entry one more time, and ask you
  1003. Xto confirm all your changes.  You can abort all your changes for this entry at
  1004. Xany time by typing '\' RETURN.
  1005. X
  1006. XYou can also add new items to this entry.  The last numbered choice is not an
  1007. Xitem name but an option to allow you to do this.  Type this number (now 8) and
  1008. Xyou will be prompted for the name and contents of a new field.  For instance
  1009. Xyou might want to add an item called 'Net Address' with a value 'cca!alex'.
  1010. XWhen prompted you would type 'Net Address: cca!alex' RETURN.  You stop adding
  1011. Xnew items by typing just a RETURN.
  1012. X
  1013. END_OF_FILE
  1014. if test 1254 -ne `wc -c <'./helplib/update.hlp'`; then
  1015.     echo shar: \"'./helplib/update.hlp'\" unpacked with wrong size!
  1016. fi
  1017. # end of './helplib/update.hlp'
  1018. fi
  1019. if test -f './helplib/updatmnu.hlp' -a "${1}" != "-c" ; then 
  1020.   echo shar: Will not clobber existing file \"'./helplib/updatmnu.hlp'\"
  1021. else
  1022. echo shar: Extracting \"'./helplib/updatmnu.hlp'\" \(126 characters\)
  1023. sed "s/^X//" >'./helplib/updatmnu.hlp' <<'END_OF_FILE'
  1024. XType number of the item you wish to change,
  1025. Xor type RETURN to finalize your changes,
  1026. Xor type '\' to cancel all your changes.
  1027. X
  1028. END_OF_FILE
  1029. if test 126 -ne `wc -c <'./helplib/updatmnu.hlp'`; then
  1030.     echo shar: \"'./helplib/updatmnu.hlp'\" unpacked with wrong size!
  1031. fi
  1032. # end of './helplib/updatmnu.hlp'
  1033. fi
  1034. if test -f './helplib/usrfld.hlp' -a "${1}" != "-c" ; then 
  1035.   echo shar: Will not clobber existing file \"'./helplib/usrfld.hlp'\"
  1036. else
  1037. echo shar: Extracting \"'./helplib/usrfld.hlp'\" \(644 characters\)
  1038. sed "s/^X//" >'./helplib/usrfld.hlp' <<'END_OF_FILE'
  1039. XYou may enter the name of any user-defined field to use as the search target
  1040. Xfield; you will then be asked for a search string in the field.  While the
  1041. Xfield name entered must match exactly the user-defined field name in spelling
  1042. Xand length, it is case-insensitive; thus, field name 'Site' will be matched
  1043. Xif you ask for 'SITE','site', or 'SiTe'.
  1044. X
  1045. XThere is no way, within the rolodex program, of determining the existence
  1046. Xof a particular user field name; it is therefore the user's responsibility
  1047. Xto remember what names have been used.  (Examining the rolodex database,
  1048. Xor printing it out, will, however, allow examination of all user fields.)
  1049. END_OF_FILE
  1050. if test 644 -ne `wc -c <'./helplib/usrfld.hlp'`; then
  1051.     echo shar: \"'./helplib/usrfld.hlp'\" unpacked with wrong size!
  1052. fi
  1053. # end of './helplib/usrfld.hlp'
  1054. fi
  1055. if test -f './makefile.vms' -a "${1}" != "-c" ; then 
  1056.   echo shar: Will not clobber existing file \"'./makefile.vms'\"
  1057. else
  1058. echo shar: Extracting \"'./makefile.vms'\" \(970 characters\)
  1059. sed "s/^X//" >'./makefile.vms' <<'END_OF_FILE'
  1060. X# Makefile for rolo - VAX/VMS Specific version
  1061. X
  1062. X#TERMSTUFF= /DEFINE=(TERMCAP)
  1063. XTERMSTUFF=
  1064. X#
  1065. X
  1066. XTOOLDIR = gal_usrdisk:[ignatz.src.rolo.toolsdir]
  1067. X
  1068. X#CDBGFLAG = /DEBUG/NOOPT
  1069. XCDBFLAG =
  1070. X
  1071. X#LDBGFLAG = /DEBUG
  1072. XLDBGFLAG  =
  1073. X
  1074. XCFLAGS = $(TERMSTUFF) $(CDBGFLAG)
  1075. XLDFLAGS= $(LDBGFLAG)
  1076. X                    
  1077. XSOURCES = clear.c,io.c,menuaux.c,operatns.c,options.c, -
  1078. X    rlist.c,rolo.c,search.c,update.c
  1079. X
  1080. XOBJECTS = clear.obj,io.obj,menuaux.obj,operatns.obj,options.obj, -
  1081. X    rlist.obj,rolo.obj,search.obj,update.obj
  1082. X
  1083. XTOOLOBJ = $(TOOLDIR)mem.obj,$(TOOLDIR)args.obj,$(TOOLDIR)ctools.obj, -
  1084. X    $(TOOLDIR)menu.obj
  1085. X
  1086. XBIN = $gal_usrdisk:[ignatz.bin]
  1087. X
  1088. XLIBS = lib:libutils/lib
  1089. X
  1090. Xrolo : setup,$(OBJECTS)
  1091. X    set default $(TOOLDIR)
  1092. X    mms tools/descrip=makefile.vms
  1093. X    set default [-]
  1094. X    link /exec=rolo.exe $(LDFLAGS) $(OBJECTS),$(TOOLOBJ),$(LIBS)
  1095. X
  1096. Xsetup :
  1097. X    cinclude local $(TOOLDIR)
  1098. X    clib curses
  1099. X
  1100. Xinstall : rolo
  1101. X    del $(BIN)rolo.exe;*
  1102. X    rename rolo.exe $(BIN)rolo.exe
  1103. X
  1104. Xclean :
  1105. X    del $(OBJECTS),rolo.exe,foo,$(TOOLDIR)*.obj
  1106. END_OF_FILE
  1107. if test 970 -ne `wc -c <'./makefile.vms'`; then
  1108.     echo shar: \"'./makefile.vms'\" unpacked with wrong size!
  1109. fi
  1110. # end of './makefile.vms'
  1111. fi
  1112. if test -f './menuaux.c' -a "${1}" != "-c" ; then 
  1113.   echo shar: Will not clobber existing file \"'./menuaux.c'\"
  1114. else
  1115. echo shar: Extracting \"'./menuaux.c'\" \(1450 characters\)
  1116. sed "s/^X//" >'./menuaux.c' <<'END_OF_FILE'
  1117. X/* menuaux.c */
  1118. X#include <stdio.h>
  1119. X#include <ctype.h>
  1120. X
  1121. X#ifdef TMC
  1122. X#include <ctools.h>
  1123. X#else
  1124. X#include "ctools.h"
  1125. X#endif
  1126. X#include "args.h"
  1127. X#include "menu.h"
  1128. X
  1129. X#include "rolofilz.h"
  1130. X#include "rolodefs.h"
  1131. X#include "datadef.h"
  1132. X
  1133. X
  1134. Xrolo_menu_yes_no (prompt,rtn_default,help_allowed,helpidx,subject)
  1135. X
  1136. X  char *prompt;
  1137. X  int rtn_default;
  1138. X  int help_allowed;
  1139. X  int helpidx;
  1140. X  char *subject;
  1141. X  
  1142. X{
  1143. X  int rval;
  1144. X  reask :
  1145. X  rval = menu_yes_no_abort_or_help (
  1146. X              prompt,ABORTSTRING,help_allowed,rtn_default
  1147. X           );
  1148. X  switch (rval) {
  1149. X    case MENU_EOF :
  1150. X      user_eof();
  1151. X      break;
  1152. X    case MENU_HELP : 
  1153. X      cathelpfile(helpidx,subject,1);
  1154. X      goto reask;
  1155. X      /* break; */
  1156. X    default :
  1157. X      return(rval);
  1158. X      /* break; */
  1159. X  }
  1160. X
  1161. X  return(0);
  1162. X}
  1163. X  
  1164. X
  1165. Xrolo_menu_data_help_or_abort (prompt,helpidx,subject,ptr_response)
  1166. X
  1167. X  char *prompt;
  1168. X  int helpidx;
  1169. X  char *subject;
  1170. X  char **ptr_response;
  1171. X  
  1172. X{ 
  1173. X  int rval;
  1174. X  reask :
  1175. X  rval = menu_data_help_or_abort(prompt,ABORTSTRING,ptr_response);
  1176. X  if (rval == MENU_EOF) user_eof();
  1177. X  if (rval == MENU_HELP) {
  1178. X     cathelpfile(helpidx,subject,1);
  1179. X     goto reask;
  1180. X  }     
  1181. X  return(rval);
  1182. X}
  1183. X     
  1184. X
  1185. Xrolo_menu_number_help_or_abort (prompt,low,high,ptr_ival)
  1186. X
  1187. X  char *prompt;
  1188. X  int low,high,*ptr_ival;
  1189. X  
  1190. X{  
  1191. X  int rval;
  1192. X  if (MENU_EOF == (rval = menu_number_help_or_abort (
  1193. X                               prompt,ABORTSTRING,low,high,ptr_ival
  1194. X                           )))
  1195. X     user_eof();
  1196. X  return(rval);
  1197. X}
  1198. END_OF_FILE
  1199. if test 1450 -ne `wc -c <'./menuaux.c'`; then
  1200.     echo shar: \"'./menuaux.c'\" unpacked with wrong size!
  1201. fi
  1202. # end of './menuaux.c'
  1203. fi
  1204. if test -f './respfile' -a "${1}" != "-c" ; then 
  1205.   echo shar: Will not clobber existing file \"'./respfile'\"
  1206. else
  1207. echo shar: Extracting \"'./respfile'\" \(1326 characters\)
  1208. sed "s/^X//" >'./respfile' <<'END_OF_FILE'
  1209. XFrom steiner%bvaxb.decnet@bvaxa Mon Nov 16 10:19:09 1987
  1210. XReturn-Path: <steiner%bvaxb.decnet@bvaxa>
  1211. XReceived: from bvaxa by risuna.com (3.2/SMI-3.2)
  1212. X    id AA09220; Mon, 16 Nov 87 10:19:06 CST
  1213. XMessage-Id: <8711161619.AA09220@risuna.com>
  1214. XDate: 16 Nov 87 10:11:00 CDT
  1215. XFrom: "BVAXB::STEINER" <steiner%bvaxb.decnet@bvaxa>
  1216. XSubject: respfile
  1217. XTo: "steiner" <steiner@risuna.com>
  1218. XReply-To: "BVAXB::STEINER" <steiner%bvaxb.decnet@bvaxa>
  1219. XStatus: R
  1220. X
  1221. X
  1222. XCLEAR.OBJ+
  1223. XIO.OBJ+
  1224. XMENUAUX.OBJ+
  1225. XOPERATNS.OBJ+
  1226. XOPTIONS.OBJ+
  1227. XRLIST.OBJ+
  1228. XROLO.OBJ+
  1229. XSEARCH.OBJ+
  1230. XUPDATE.OBJ+
  1231. XTOOLSDIR\ARGS.OBJ+
  1232. XTOOLSDIR\CTOOLS.OBJ+
  1233. XTOOLSDIR\CTOOLS.OBJ+
  1234. XTOOLSDIR\MEM.OBJ+
  1235. XTOOLSDIR\MENU.OBJ+
  1236. XTOOLSDIR\MENU.OBJ
  1237. X------
  1238. X
  1239. XFrom steiner%bvaxb.decnet@bvaxa Mon Nov 16 10:19:09 1987
  1240. XReturn-Path: <steiner%bvaxb.decnet@bvaxa>
  1241. XReceived: from bvaxa by risuna.com (3.2/SMI-3.2)
  1242. X    id AA09220; Mon, 16 Nov 87 10:19:06 CST
  1243. XMessage-Id: <8711161619.AA09220@risuna.com>
  1244. XDate: 16 Nov 87 10:11:00 CDT
  1245. XFrom: "BVAXB::STEINER" <steiner%bvaxb.decnet@bvaxa>
  1246. XSubject: respfile
  1247. XTo: "steiner" <steiner@risuna.com>
  1248. XReply-To: "BVAXB::STEINER" <steiner%bvaxb.decnet@bvaxa>
  1249. XStatus: R
  1250. X
  1251. X
  1252. XCLEAR.OBJ+
  1253. XIO.OBJ+
  1254. XMENUAUX.OBJ+
  1255. XOPERATNS.OBJ+
  1256. XOPTIONS.OBJ+
  1257. XRLIST.OBJ+
  1258. XROLO.OBJ+
  1259. XSEARCH.OBJ+
  1260. XUPDATE.OBJ+
  1261. XTOOLSDIR\ARGS.OBJ+
  1262. XTOOLSDIR\CTOOLS.OBJ+
  1263. XTOOLSDIR\CTOOLS.OBJ+
  1264. XTOOLSDIR\MEM.OBJ+
  1265. XTOOLSDIR\MENU.OBJ+
  1266. XTOOLSDIR\MENU.OBJ
  1267. X------
  1268. X
  1269. END_OF_FILE
  1270. if test 1326 -ne `wc -c <'./respfile'`; then
  1271.     echo shar: \"'./respfile'\" unpacked with wrong size!
  1272. fi
  1273. # end of './respfile'
  1274. fi
  1275. if test -f './rolodefs.h' -a "${1}" != "-c" ; then 
  1276.   echo shar: Will not clobber existing file \"'./rolodefs.h'\"
  1277. else
  1278. echo shar: Extracting \"'./rolodefs.h'\" \(722 characters\)
  1279. sed "s/^X//" >'./rolodefs.h' <<'END_OF_FILE'
  1280. X/* rolodefs.h */
  1281. X#define VERSION "2.0.2"
  1282. X
  1283. X#ifdef VMS
  1284. X#define CHUNKSIZE 100000        /* storage size for holding data file */
  1285. X#endif
  1286. X
  1287. X#ifdef UNIX
  1288. X#define CHUNKSIZE ((unsigned)100000) /* storage size for holding data file */
  1289. X#endif
  1290. X
  1291. X#ifdef MSDOS
  1292. X#define CHUNKSIZE ((unsigned)50000)  /* storage size for holding data file */
  1293. X#endif
  1294. X
  1295. X#define NOLOCKFLAG 'l'
  1296. X#define SUMMARYFLAG 's'
  1297. X#define OTHERUSERFLAG 'u'
  1298. X#define READONLYFLAG 'r'
  1299. X
  1300. X#define LEGAL_OPTIONS "lsru"
  1301. X#ifdef VMS
  1302. X#define USAGE "rolo [ person1 person2 ...] [ -l -s -r -u use_dir ] "
  1303. X#endif
  1304. X
  1305. X#ifdef UNIX
  1306. X#define USAGE "rolo [ person1 person2 ...] [ -l -s -r -u user ] "
  1307. X#endif
  1308. X
  1309. X#ifdef MSDOS
  1310. X#define USAGE "rolo [ person1 person2 ...] [ -l -s -r -u use_dir ] "
  1311. X#endif
  1312. END_OF_FILE
  1313. if test 722 -ne `wc -c <'./rolodefs.h'`; then
  1314.     echo shar: \"'./rolodefs.h'\" unpacked with wrong size!
  1315. fi
  1316. # end of './rolodefs.h'
  1317. fi
  1318. if test -f './rolofilz.h' -a "${1}" != "-c" ; then 
  1319.   echo shar: Will not clobber existing file \"'./rolofilz.h'\"
  1320. else
  1321. echo shar: Extracting \"'./rolofilz.h'\" \(2280 characters\)
  1322. sed "s/^X//" >'./rolofilz.h' <<'END_OF_FILE'
  1323. X/* rolofilz.h */
  1324. X#ifdef UNIX
  1325. X#define ROLOBAK ".rolodex~"
  1326. X#define ROLODATA ".rolodex.dat"
  1327. X#define ROLOPRINT "roloprint.text"
  1328. X#define ROLOLOCK ".rolodexdata.lock"
  1329. X#define ROLOTEMP ".rolotemp"
  1330. X#define ROLOCOPY ".rolocopy"
  1331. X#endif
  1332. X
  1333. X#ifdef VMS
  1334. X#define ROLOBAK "rolodex.bak"
  1335. X#define ROLODATA "rolodex.data"
  1336. X#define ROLOPRINT "roloprint.text"
  1337. X#define ROLOLOCK "rolodexdata.lock"
  1338. X#define ROLOTEMP "rolotemp.data"
  1339. X#define ROLOCOPY "rolocopy.data"
  1340. X#endif
  1341. X
  1342. X#ifdef MSDOS
  1343. X#define ROLOBAK "rolodex.bak"
  1344. X#define ROLODATA "rolodex.dat"
  1345. X#define ROLOPRINT "roloprnt.txt"
  1346. X#define ROLOLOCK "rolodata.lck"
  1347. X#define ROLOTEMP "rolotemp.dat"
  1348. X#define ROLOCOPY "rolocopy.dat"
  1349. X#endif
  1350. X
  1351. X/* This is now defined in the Makefile (except for VMS) */
  1352. X
  1353. X/*  #define ROLOLIB "/usr/local/lib/rolo"  */
  1354. X#ifdef VMS
  1355. X#define    ROLOLIB "gal_usrdisk:[ignatz.lib.rololib]"
  1356. X#endif
  1357. X
  1358. X/*
  1359. X * These definitions go with the hlpfiles[] array in IO.C; do *not* change
  1360. X * the value any of these definitions, or funny things will happen to your
  1361. X * help definitions!  These values are actually array index values to that
  1362. X * array, and as such, modification will cause the help routine to point
  1363. X * the wrong file...
  1364. X *
  1365. X * Adding help files consists of both defining the offset here, and entering
  1366. X * the filename in hlpfiles[] in IO.C.
  1367. X */
  1368. X#define    ADDHELP            0
  1369. X#define ADDINFO         (ADDHELP + 1)
  1370. X#define    CONFIRMHELP        (ADDINFO + 1)
  1371. X#define ENTRYMENU        (CONFIRMHELP + 1)
  1372. X#define    ESCANHELP        (ENTRYMENU + 1)
  1373. X#define    ESEARCHHELP        (ESCANHELP + 1)
  1374. X#define    FIELDSEARCHHELP        (ESEARCHHELP + 1)
  1375. X#define    LOCKINFO        (FIELDSEARCHHELP + 1)
  1376. X#define    MAINMENU            (LOCKINFO + 1)
  1377. X#define    MANYMATCHHELP        (MAINMENU + 1)
  1378. X#define    MOPTIONHELP        (MANYMATCHHELP + 1)
  1379. X#define    MOPTIONSHELP        (MOPTIONHELP + 1)
  1380. X#define    MOREFIELDSHELP        (MOPTIONSHELP + 1)
  1381. X#define    NEWADDHELP        (MOREFIELDSHELP + 1)
  1382. X#define    OTHERFORMATHELP        (NEWADDHELP + 1)
  1383. X#define    PICKENTRYHELP          (OTHERFORMATHELP + 1)
  1384. X#define    PICKENTRYMENU        (PICKENTRYHELP + 1)
  1385. X#define    POPTIONMENU        (PICKENTRYMENU + 1)
  1386. X#define    POPTIONSHELP        (POPTIONMENU + 1)
  1387. X#define    SEARCHSTRINGHELP    (POPTIONSHELP + 1)
  1388. X#define    UPDATEHELP        (SEARCHSTRINGHELP + 1)
  1389. X#define    UPDATEMENU        (UPDATEHELP + 1)
  1390. X#define    USERFIELDHELP        (UPDATEMENU + 1)
  1391. X
  1392. X/* Use this to validate given index values */
  1393. X#define LAST_HELP ((sizeof(hlpfiles) / sizeof(char *)) - 1)
  1394. END_OF_FILE
  1395. if test 2280 -ne `wc -c <'./rolofilz.h'`; then
  1396.     echo shar: \"'./rolofilz.h'\" unpacked with wrong size!
  1397. fi
  1398. # end of './rolofilz.h'
  1399. fi
  1400. if test ! -d './toolsdir' ; then
  1401.     echo shar: Creating directory \"'./toolsdir'\"
  1402.     mkdir './toolsdir'
  1403. fi
  1404. if test -f './toolsdir/Makefile' -a "${1}" != "-c" ; then 
  1405.   echo shar: Will not clobber existing file \"'./toolsdir/Makefile'\"
  1406. else
  1407. echo shar: Extracting \"'./toolsdir/Makefile'\" \(191 characters\)
  1408. sed "s/^X//" >'./toolsdir/Makefile' <<'END_OF_FILE'
  1409. X# Rolodex Tools makefile - Generic UNIX
  1410. XCC = ccsh
  1411. XCFLAGS  = -DSYS5 -DUNIX -O
  1412. XDBGFLAG =
  1413. XSOURCES = mem.c ctools.c args.c menu.c
  1414. XOBJECTS = mem.o ctools.o args.o menu.o
  1415. XLIBS =
  1416. X
  1417. Xtools: $(OBJECTS)
  1418. END_OF_FILE
  1419. if test 191 -ne `wc -c <'./toolsdir/Makefile'`; then
  1420.     echo shar: \"'./toolsdir/Makefile'\" unpacked with wrong size!
  1421. fi
  1422. # end of './toolsdir/Makefile'
  1423. fi
  1424. if test -f './toolsdir/Makefile.msc' -a "${1}" != "-c" ; then 
  1425.   echo shar: Will not clobber existing file \"'./toolsdir/Makefile.msc'\"
  1426. else
  1427. echo shar: Extracting \"'./toolsdir/Makefile.msc'\" \(553 characters\)
  1428. sed "s/^X//" >'./toolsdir/Makefile.msc' <<'END_OF_FILE'
  1429. X# Rolodex Tools makefile - PC/MS-DOS Version (Microsoft C)
  1430. X#
  1431. X# :ts=8
  1432. X# :bk=0
  1433. X# :ma=1
  1434. X#
  1435. XCC = msc
  1436. X#OPTDBG = /Zi
  1437. XOPTDBG = /Os
  1438. XCFLAGS  = /DMSDOS /DSYS5 $(OPTDBG)
  1439. XDBGFLAG = 
  1440. XSOURCES = ctools.c menu.c args.c mem.c
  1441. XOBJECTS = ctools.obj menu.obj args.obj mem.obj
  1442. XLIBOBJECTS = ctools.obj+menu.obj+args.obj+mem.obj
  1443. XLIBS =
  1444. X
  1445. X.c.obj:
  1446. X    $(CC) $(CFLAGS) $*.c;
  1447. X
  1448. Xmem.obj:        mem.c sys5.h
  1449. X
  1450. Xctools.obj:    ctools.c sys5.h ctools.h basics.h
  1451. X
  1452. Xargs.obj:        args.c basics.h args.h sys5.h
  1453. X
  1454. Xmenu.obj:        menu.c basics.h ctools.h menu.h sys5.h
  1455. X
  1456. Xtools:    $(OBJECTS)
  1457. X    lib tools $(LIBOBJECTS);
  1458. END_OF_FILE
  1459. if test 553 -ne `wc -c <'./toolsdir/Makefile.msc'`; then
  1460.     echo shar: \"'./toolsdir/Makefile.msc'\" unpacked with wrong size!
  1461. fi
  1462. # end of './toolsdir/Makefile.msc'
  1463. fi
  1464. if test -f './toolsdir/Makefile.tc' -a "${1}" != "-c" ; then 
  1465.   echo shar: Will not clobber existing file \"'./toolsdir/Makefile.tc'\"
  1466. else
  1467. echo shar: Extracting \"'./toolsdir/Makefile.tc'\" \(247 characters\)
  1468. sed "s/^X//" >'./toolsdir/Makefile.tc' <<'END_OF_FILE'
  1469. X# Rolodex Tools makefile - PC/MS-DOS Version (Turbo-C)
  1470. XCC = tcc
  1471. XCFLAGS  = -O -DMSDOS -DSYS5
  1472. XDBGFLAG = 
  1473. XSOURCES = mem.c ctools.c args.c menu.c
  1474. XOBJECTS = mem.obj ctools.obj args.obj menu.obj
  1475. XLIBS =
  1476. X
  1477. X.c.obj:
  1478. X    $(CC) $(CFLAGS) -c $<
  1479. X
  1480. Xtools: $(OBJECTS)
  1481. END_OF_FILE
  1482. if test 247 -ne `wc -c <'./toolsdir/Makefile.tc'`; then
  1483.     echo shar: \"'./toolsdir/Makefile.tc'\" unpacked with wrong size!
  1484. fi
  1485. # end of './toolsdir/Makefile.tc'
  1486. fi
  1487. if test -f './toolsdir/Makefile.unx' -a "${1}" != "-c" ; then 
  1488.   echo shar: Will not clobber existing file \"'./toolsdir/Makefile.unx'\"
  1489. else
  1490. echo shar: Extracting \"'./toolsdir/Makefile.unx'\" \(189 characters\)
  1491. sed "s/^X//" >'./toolsdir/Makefile.unx' <<'END_OF_FILE'
  1492. X# Rolodex Tools makefile - Generic UNIX
  1493. XCC = cc
  1494. XCFLAGS  = -DSYS5 -DUNIX -O
  1495. XDBGFLAG =
  1496. XSOURCES = mem.c ctools.c args.c menu.c
  1497. XOBJECTS = mem.o ctools.o args.o menu.o
  1498. XLIBS =
  1499. X
  1500. Xtools: $(OBJECTS)
  1501. END_OF_FILE
  1502. if test 189 -ne `wc -c <'./toolsdir/Makefile.unx'`; then
  1503.     echo shar: \"'./toolsdir/Makefile.unx'\" unpacked with wrong size!
  1504. fi
  1505. # end of './toolsdir/Makefile.unx'
  1506. fi
  1507. if test -f './toolsdir/Makefile.vms' -a "${1}" != "-c" ; then 
  1508.   echo shar: Will not clobber existing file \"'./toolsdir/Makefile.vms'\"
  1509. else
  1510. echo shar: Extracting \"'./toolsdir/Makefile.vms'\" \(228 characters\)
  1511. sed "s/^X//" >'./toolsdir/Makefile.vms' <<'END_OF_FILE'
  1512. X# Makefile - rolo tools (VAX/VMS Version)
  1513. XCFLAGS  = /DEFINE=(SYS5)
  1514. XDBGFLAG = 
  1515. XSOURCES = mem.c,ctools.c,args.c,menu.c
  1516. XOBJECTS = mem.obj,ctools.obj,args.obj,menu.obj
  1517. XLIBS =
  1518. X
  1519. Xtools : $(OBJECTS)
  1520. X    @ write sys$output "Tools updated."
  1521. END_OF_FILE
  1522. if test 228 -ne `wc -c <'./toolsdir/Makefile.vms'`; then
  1523.     echo shar: \"'./toolsdir/Makefile.vms'\" unpacked with wrong size!
  1524. fi
  1525. # end of './toolsdir/Makefile.vms'
  1526. fi
  1527. if test -f './toolsdir/args.h' -a "${1}" != "-c" ; then 
  1528.   echo shar: Will not clobber existing file \"'./toolsdir/args.h'\"
  1529. else
  1530. echo shar: Extracting \"'./toolsdir/args.h'\" \(2401 characters\)
  1531. sed "s/^X//" >'./toolsdir/args.h' <<'END_OF_FILE'
  1532. X/* You must include "basics.h" to use this */
  1533. X
  1534. X/* To use this package, first call get_args, then call the various other */
  1535. X/* routines to see which options were given, etc. */
  1536. X
  1537. X#define NIL 0                          /* null pointer  */
  1538. X
  1539. X#define ARG_ERROR -1
  1540. X#define NO_ARGS 0
  1541. X#define ARGS_PRESENT 1
  1542. X
  1543. X#define MAX_OPTIONS 52                 /* a-z A-Z */
  1544. X#define NO_OPTION -1
  1545. X
  1546. X/* an argument and the option it is associated with */
  1547. X
  1548. Xtypedef struct argument {
  1549. X        char *option;
  1550. X        int option_index;
  1551. X        struct argument *next;
  1552. X} Cmd_Arg, *Ptr_Cmd_Arg;
  1553. X
  1554. X/* all the arguments (in a list) and a toggle for every possible option */
  1555. X
  1556. Xtypedef struct {
  1557. X        Ptr_Cmd_Arg non_dash_arg_list; 
  1558. X        int dash_options[MAX_OPTIONS];
  1559. X} Cmd_Line, *Ptr_Cmd_Line;
  1560. X
  1561. X/*--------------------------------------------------------------------------*/
  1562. X        
  1563. Xextern char *malloc();
  1564. X
  1565. Xextern int get_args();
  1566. X
  1567. X        /* int argc; char **argv; Bool dup_error; Bool print_msg; */
  1568. X        /* returns one of ARG_ERROR, NO_ARGS, or ARGS_PRESENT */
  1569. X        /* if dup_error, then having two identical options on the command */
  1570. X        /* line will cause an error.  If print_msg, then  any error that */
  1571. X        /* is noticed is printed out to stderr.  If !dup_error then */
  1572. X        /* 'foo -a 3 4 -b -a 5' is equivalent to 'foo -a 3 4 5 -b' */
  1573. X        
  1574. X        
  1575. Xextern Bool any_option_present();
  1576. X
  1577. X        /* no arguments */
  1578. X
  1579. Xextern Bool option_present();
  1580. X
  1581. X        /* char achar; */
  1582. X
  1583. Xextern char * option_arg();
  1584. X
  1585. X        /* char achar; int n; */
  1586. X
  1587. Xextern char * non_option_arg();
  1588. X
  1589. X        /* int n; */
  1590. X
  1591. Xextern int n_option_args();
  1592. X
  1593. X        /* char achar; */
  1594. X
  1595. Xextern int n_non_option_args();
  1596. X
  1597. X        /* no arguments */
  1598. X
  1599. Xextern int n_non_dash_args();
  1600. X
  1601. X        /* no arguments */
  1602. X
  1603. Xextern Bool check_option_args();        
  1604. X
  1605. X        /* char achar; int min; int max; */
  1606. X
  1607. X#define ALL_LEGAL 0
  1608. X
  1609. Xextern char legal_options();
  1610. X
  1611. X        /* char *legaloptions; */
  1612. X        /* legaloptions should be a string of characters all in the range */
  1613. X        /* a-zA-Z.   Returns ALL_LEGAL if every option parsed in included */
  1614. X        /* in the legaloptions string, otherwise returns the first option */
  1615. X        /* character not in the string. */
  1616. X
  1617. Xextern set_option();
  1618. X
  1619. X        /* char achar */
  1620. X
  1621. Xextern error_message();
  1622. X
  1623. X        /* char *progname; char **argv; int index; char *usage; */
  1624. X
  1625. Xextern print_args();
  1626. X
  1627. X        /* debugging routine */
  1628. END_OF_FILE
  1629. if test 2401 -ne `wc -c <'./toolsdir/args.h'`; then
  1630.     echo shar: \"'./toolsdir/args.h'\" unpacked with wrong size!
  1631. fi
  1632. # end of './toolsdir/args.h'
  1633. fi
  1634. if test -f './toolsdir/basics.h' -a "${1}" != "-c" ; then 
  1635.   echo shar: Will not clobber existing file \"'./toolsdir/basics.h'\"
  1636. else
  1637. echo shar: Extracting \"'./toolsdir/basics.h'\" \(596 characters\)
  1638. sed "s/^X//" >'./toolsdir/basics.h' <<'END_OF_FILE'
  1639. X#define T 1
  1640. X#define F 0
  1641. X
  1642. X#define True 1
  1643. X#define False 0
  1644. X
  1645. X#define SUCCESS 1
  1646. X#define FAILURE 0
  1647. X#define ERROR -1
  1648. X
  1649. X#define Bool int
  1650. X
  1651. X#ifdef VMS
  1652. X#ifndef MAXINT
  1653. X#define MAXINT 2147483647
  1654. X#endif
  1655. X
  1656. X#ifndef MAXINTSTR
  1657. X#define MAXINTSTR "2147483647"
  1658. X#endif
  1659. X#endif
  1660. X
  1661. X
  1662. X#ifdef UNIX
  1663. X#ifndef MAXINT
  1664. X#define MAXINT 2147483647
  1665. X#endif
  1666. X
  1667. X#ifndef MAXINTSTR
  1668. X#define MAXINTSTR "2147483647"
  1669. X#endif
  1670. X#endif
  1671. X
  1672. X#ifdef  MSDOS
  1673. X#ifndef MAXINTSTR
  1674. Xextern char *itoa();
  1675. Xextern char maxintstr[];
  1676. X
  1677. X#define MAXINT (~(1 << ((sizeof(int) * 8 - 1))))
  1678. X#define MAXINTSTR ((*maxintstr=='\0')?itoa(MAXINT,maxintstr,10):maxintstr)
  1679. X#endif
  1680. X#endif
  1681. END_OF_FILE
  1682. if test 596 -ne `wc -c <'./toolsdir/basics.h'`; then
  1683.     echo shar: \"'./toolsdir/basics.h'\" unpacked with wrong size!
  1684. fi
  1685. # end of './toolsdir/basics.h'
  1686. fi
  1687. if test -f './toolsdir/mem.c' -a "${1}" != "-c" ; then 
  1688.   echo shar: Will not clobber existing file \"'./toolsdir/mem.c'\"
  1689. else
  1690. echo shar: Extracting \"'./toolsdir/mem.c'\" \(2261 characters\)
  1691. sed "s/^X//" >'./toolsdir/mem.c' <<'END_OF_FILE'
  1692. X/**************************************************************************/
  1693. X/**************************************************************************/
  1694. X
  1695. X
  1696. X                  /***** Block Memory Allocator *****/
  1697. X
  1698. X
  1699. X/**************************************************************************/
  1700. X/**************************************************************************/
  1701. X
  1702. X/* Author: JP Massar */
  1703. X
  1704. X#include <stdio.h>
  1705. X
  1706. X#include "sys5.h"
  1707. X
  1708. X#ifdef BSD42
  1709. X#include <strings.h>
  1710. X#endif
  1711. X
  1712. X#define NO_MORE_MEMORY -1
  1713. X
  1714. Xstatic int bytes_left;                  /* space left in current block */
  1715. Xstatic char *ptr_next_byte;             /* next free byte */
  1716. Xstatic char *ptr_space;                 /* current block */
  1717. Xstatic unsigned chunk_size;                  /* size of block last allocated */
  1718. X
  1719. Xextern char *malloc();
  1720. X
  1721. X
  1722. Xunsigned allocate_memory_chunk(space) 
  1723. Xunsigned space;
  1724. X
  1725. X/* malloc up a new block of memory.  Set our static variables */
  1726. X/* returns NO_MORE_MEMORY if can't allocate block. */
  1727. X
  1728. X{ 
  1729. X#ifdef MSDOS
  1730. X  if ((char *)NULL == (ptr_space = malloc(space))) {
  1731. X#else
  1732. X  if (0 == (ptr_space = malloc(space))) {
  1733. X#endif
  1734. X        fprintf(stderr,"fatal error, no more memory\n");
  1735. X        return(NO_MORE_MEMORY);
  1736. X  }
  1737. X  ptr_next_byte = ptr_space;
  1738. X  bytes_left = space;
  1739. X  chunk_size = space;
  1740. X  return(0);
  1741. X}
  1742. X
  1743. X
  1744. Xchar * get_memory_chunk (size) unsigned size;
  1745. X
  1746. X/* allocate a small segment out of our large block of memory.  If we */
  1747. X/* run out allocate another block.  Adjust our static variables. */
  1748. X/* returns 0 if no more memory. */
  1749. X
  1750. X{ char *rval;
  1751. X        
  1752. X  if (size > chunk_size) {
  1753. X        fprintf(stderr,"attempt to allocate too large a chunk\n");
  1754. X        return(0);
  1755. X  }
  1756. X        
  1757. X  if (size > bytes_left) {
  1758. X        if (NO_MORE_MEMORY == allocate_memory_chunk(chunk_size)) {
  1759. X                return(0);
  1760. X        }
  1761. X        return(get_memory_chunk(size));
  1762. X  }
  1763. X
  1764. X  rval = ptr_next_byte;
  1765. X  ptr_next_byte += size;
  1766. X  bytes_left -= size;
  1767. X  return(rval);
  1768. X  
  1769. X}
  1770. X
  1771. X
  1772. Xchar * store_string (str,len) char *str; unsigned len;
  1773. X
  1774. X/* put copy of a string into storage in a memory block.  Return a pointer to */
  1775. X/* the copied string.  Returns 0 if out of memory. */
  1776. X
  1777. X{ char *ptr_space;
  1778. X
  1779. X  if (0 == (ptr_space = get_memory_chunk(len+1))) {
  1780. X        return(0);
  1781. X  }
  1782. X  strcpy(ptr_space,str);
  1783. X  return(ptr_space);
  1784. X}
  1785. END_OF_FILE
  1786. if test 2261 -ne `wc -c <'./toolsdir/mem.c'`; then
  1787.     echo shar: \"'./toolsdir/mem.c'\" unpacked with wrong size!
  1788. fi
  1789. # end of './toolsdir/mem.c'
  1790. fi
  1791. if test -f './toolsdir/mem.h' -a "${1}" != "-c" ; then 
  1792.   echo shar: Will not clobber existing file \"'./toolsdir/mem.h'\"
  1793. else
  1794. echo shar: Extracting \"'./toolsdir/mem.h'\" \(209 characters\)
  1795. sed "s/^X//" >'./toolsdir/mem.h' <<'END_OF_FILE'
  1796. Xextern int allocate_memory_chunk();     /* arg1: int space */
  1797. X       
  1798. Xextern char * get_memory_chunk();       /* arg1: int size */
  1799. X
  1800. Xextern char * store_string();           /* arg1: char *str, arg2: int len */
  1801. END_OF_FILE
  1802. if test 209 -ne `wc -c <'./toolsdir/mem.h'`; then
  1803.     echo shar: \"'./toolsdir/mem.h'\" unpacked with wrong size!
  1804. fi
  1805. # end of './toolsdir/mem.h'
  1806. fi
  1807. if test -f './toolsdir/sys5.h' -a "${1}" != "-c" ; then 
  1808.   echo shar: Will not clobber existing file \"'./toolsdir/sys5.h'\"
  1809. else
  1810. echo shar: Extracting \"'./toolsdir/sys5.h'\" \(102 characters\)
  1811. sed "s/^X//" >'./toolsdir/sys5.h' <<'END_OF_FILE'
  1812. X#ifdef SYS5
  1813. X#define rindex strrchr
  1814. X#define index strchr
  1815. X#ifndef VMS
  1816. X#include <string.h>
  1817. X#endif
  1818. X#endif
  1819. END_OF_FILE
  1820. if test 102 -ne `wc -c <'./toolsdir/sys5.h'`; then
  1821.     echo shar: \"'./toolsdir/sys5.h'\" unpacked with wrong size!
  1822. fi
  1823. # end of './toolsdir/sys5.h'
  1824. fi
  1825. if test -f 'MANIFEST' -a "${1}" != "-c" ; then 
  1826.   echo shar: Will not clobber existing file \"'MANIFEST'\"
  1827. else
  1828. echo shar: Extracting \"'MANIFEST'\" \(2094 characters\)
  1829. sed "s/^X//" >'MANIFEST' <<'END_OF_FILE'
  1830. X   File Name        Archive #    Description
  1831. X-----------------------------------------------------------
  1832. X .                         1    
  1833. X ./Makefile.bsd            1    
  1834. X ./Makefile.msc            1    
  1835. X ./Makefile.tc             1    
  1836. X ./Makefile.unx            1    
  1837. X ./Part01                  1    
  1838. X ./README.Z                1    
  1839. X ./choices.h               1    
  1840. X ./clear.c                 1    
  1841. X ./datadef.h               2    
  1842. X ./helplib                 1    
  1843. X ./helplib/addhelp.hlp     1    
  1844. X ./helplib/addinfo.hlp     1    
  1845. X ./helplib/confirm.hlp     1    
  1846. X ./helplib/entrymnu.hlp    1    
  1847. X ./helplib/escan.hlp       1    
  1848. X ./helplib/esearch.hlp     1    
  1849. X ./helplib/fldsrch.hlp     1    
  1850. X ./helplib/lockinfo.dos    1    
  1851. X ./helplib/lockinfo.unx    1    
  1852. X ./helplib/lockinfo.vms    1    
  1853. X ./helplib/mainmenu.hlp    1    
  1854. X ./helplib/mnymtch.hlp     1    
  1855. X ./helplib/moption.hlp     1    
  1856. X ./helplib/moptions.hlp    1    
  1857. X ./helplib/moreflds.hlp    1    
  1858. X ./helplib/newadd.hlp      1    
  1859. X ./helplib/otherfmt.hlp    1    
  1860. X ./helplib/pkentry.hlp     1    
  1861. X ./helplib/pkntmenu.hlp    1    
  1862. X ./helplib/poptions.hlp    1    
  1863. X ./helplib/poptmenu.hlp    1    
  1864. X ./helplib/srchstr.hlp     1    
  1865. X ./helplib/update.hlp      1    
  1866. X ./helplib/updatmnu.hlp    1    
  1867. X ./helplib/usrfld.hlp      1    
  1868. X ./io.c                    3    
  1869. X ./makefile.vms            1    
  1870. X ./menuaux.c               1    
  1871. X ./operatns.c              3    
  1872. X ./options.c               2    
  1873. X ./respfile                1    
  1874. X ./rlist.c                 2    
  1875. X ./rolo.1                  2    
  1876. X ./rolo.c                  3    
  1877. X ./rolodefs.h              1    
  1878. X ./rolofilz.h              1    
  1879. X ./search.c                2    
  1880. X ./toolsdir                1    
  1881. X ./toolsdir/Makefile       1    
  1882. X ./toolsdir/Makefile.msc   1    
  1883. X ./toolsdir/Makefile.tc    1    
  1884. X ./toolsdir/Makefile.unx   1    
  1885. X ./toolsdir/Makefile.vms   1    
  1886. X ./toolsdir/args.c         2    
  1887. X ./toolsdir/args.h         1    
  1888. X ./toolsdir/basics.h       1    
  1889. X ./toolsdir/ctools.c       4    
  1890. X ./toolsdir/ctools.h       3    
  1891. X ./toolsdir/mem.c          1    
  1892. X ./toolsdir/mem.h          1    
  1893. X ./toolsdir/menu.c         2    
  1894. X ./toolsdir/menu.h         2    
  1895. X ./toolsdir/sys5.h         1    
  1896. X ./update.c                2    
  1897. X MANIFEST                  1    This shipping list
  1898. END_OF_FILE
  1899. if test 2094 -ne `wc -c <'MANIFEST'`; then
  1900.     echo shar: \"'MANIFEST'\" unpacked with wrong size!
  1901. fi
  1902. # end of 'MANIFEST'
  1903. fi
  1904. echo shar: End of archive 1 \(of 4\).
  1905. cp /dev/null ark1isdone
  1906. MISSING=""
  1907. for I in 1 2 3 4 ; do
  1908.     if test ! -f ark${I}isdone ; then
  1909.     MISSING="${MISSING} ${I}"
  1910.     fi
  1911. done
  1912. if test "${MISSING}" = "" ; then
  1913.     echo You have unpacked all 4 archives.
  1914.     rm -f ark[1-9]isdone
  1915. else
  1916.     echo You still need to unpack the following archives:
  1917.     echo "        " ${MISSING}
  1918. fi
  1919. ##  End of shell archive.
  1920. exit 0
  1921.